package com.mars.tukuan.rpc.api;

import com.github.pagehelper.PageInfo;
import com.mars.base.common.base.BaseResult;
import com.mars.base.common.utils.Paginator;
import com.mars.base.service.support.IService;
import com.mars.tukuan.dto.CarUserVo;
import com.mars.tukuan.entity.CarUser;

public interface CarUserService extends IService<CarUser, Long> {
	
	public PageInfo<CarUserVo> list(Paginator paginator, CarUserVo vo) ;
	
	/**
	 * 登陆验证
	 * @param mobile 手机号码
	 * @param password 用户输入的密码
	 * @return
	 */
	public Object validateLogin(String mobile, String password) ;
	
	/**
	 * 根据手机号码加载对象
	 * @param mobile
	 * @return
	 */
	public CarUser getUserByMobile(String mobile) ;
	
	/**
	 * 根据用户名查询
	 * @param CarUsername
	 * @return
	 */
	public CarUser gerUserByUserName(String username) ;
	
	/**
	 * 校验数据
	 * @param content 校验的数据
	 * @param type 校验的类型（1：用户名; 2：邮件地址; 3：手机号码）
	 * @return
	 */
	public Boolean checkData(String content, Integer type) ;
	
	/**
	 * 修改密码，后台直接手改密码
	 * 密码加密加盐(手机号码+密码+唯一标示（UUID）)
	 * @param id
	 * @param mobile 手机号码
	 * @param password 密码
	 * @return
	 */
	public BaseResult updatePasswordById(Long id, String mobile, String password) ;
	
	/**
	 * 修改密码，先验证账号和密码，通过才验证
	 * @param mobile 手机号码
	 * @param password 密码
	 * @return
	 */
	public Object updatePassword(String mobile, String oldPassword, String newPassword) ;
	
	
	/**
	 * 后台重置密码，密码为用用户的手机号码后4位
	 * @param id
	 * @param username
	 * @param password
	 * @return
	 */
	public BaseResult resetPassword(Long[] ids) ;
	
	/**
	 * 修改账号状态
	 * @param id
	 * @param status 状态（1：激活，2：锁定）
	 * @return
	 */
	public Integer updateAccountStatus(Long[] id, Integer status) ;
	
	/**
	 * 更新车辆检查时间，用于计算最近操作
	 * @param id
	 */
	public void updateCheckTime(Long id) ;
	
}
